The present invention relates to a code error correcting and detecting apparatus and, more particularly, to a code error correcting and detecting apparatus that performs predetermined processes on digital data read from a recording medium, such as a CD (Compact Disc) or a DVD (Digital Video Disc).
In compact disc read only memory (CD-ROM) systems, a digital audio compact disc (CD) functions as a read only memory (ROM) for digital data. To improve the reliability of digital data read from the CD, error correction is performed twice on the digital data. The first error correction is executed by a digital signal processor which is common to both an audio system and a CD-ROM system, and the second error correction is executed by a CD-ROM decoder of the CD-ROM system.
FIG. 1 is a block diagram of a CD-ROM system. The CD-ROM system includes a pickup 1, a pickup controller 3, an analog signal processor 4, a digital signal processor 5, a CD-ROM decoder 6, a buffer random access memory (RAM) 7 and a control microcomputer 8.
The pickup 1 irradiates light on a disk 2 to generate a voltage signal proportional to the intensity of the reflected light. The pickup controller 3 controls the read position of the pickup 1 with respect to the disk 2 so that the pickup 1 reads data from the disk 2 in the correct order. Servo control to turn the disk 2 at a predetermined velocity is performed in accordance with the position control of the pickup 1. The servo control keeps constant the linear velocity of tracks on the disk 2.
The analog signal processor 4 receives the voltage signal from the pickup 1 and generates one frame of an Eight to Fourteen Modulation (EFM) data signal consisting of 588 bits. As shown in FIG. 2, EFM data includes a 24-bit sync signal assigned to the beginning of each frame, 3-bit connection bit fields and 14-bit data bit fields which are alternately provided in each frame after the sync signal.
The digital signal processor 5 receives the EFM signal from the analog signal processor 4 and performs EFM demodulation on the signal for conversion to 8 bits from 14 bits. In this EFM demodulation, 8-bit subcode data is produced from the first data bit field following the sync signal, and 32-byte symbol data is produced from the remaining thirty-two pieces of data bit fields. Further, the 32-byte symbol data is subjected to Cross-Interleave Reed-Solomon Code (CIRC) demodulation to yield one frame of CD-ROM data consisting of 24 bytes. The first error correcting process is completed with this CIRC demodulation.
The CD-ROM data is handled in a block by block manner, each block of data consisting of 2352 bytes (24 bytes.times.98 frames). As shown in FIG. 3, normally (in mode 1), one block of data includes a sync signal (12 bytes), a header (4 bytes), user data (2048 bytes), an error detection code (EDC) (4 bytes) and an error correction code (ECC) (276 bytes). In one block of data, 2340 bytes of data excluding the 12-byte sync signal has previously undergone a scrambling process and is reproduced by a descrambling process.
The CD-ROM decoder 6 receives the CD-ROM data from the digital signal processor 5 and performs error correction in accordance with the ECC and error detection in accordance with the EDC to provide the processed CD-ROM data to a host computer. Normally, therefore, after an error in data is corrected in accordance with the ECC, it is checked in accordance with the EDC to determine if the error was properly corrected. When the error has not been corrected properly, error correction is carried out again in accordance with the ECC, or an error flag is affixed to the CD-ROM data containing the error code.
The buffer RAM 7 is connected to the CD-ROM decoder 6 and temporarily stores CD-ROM data in a block by block manner. Since the ECC and EDC are included in one block of CD-ROM data, the CD-ROM decoder 6 requires at least one block of CD-ROM data. Therefore, the buffer RAM 7 stores one block of CD-ROM data for the CD-ROM decoder 6.
The control microcomputer 8 can be a one-chip microcomputer that incorporates an internal ROM and an internal RAM. The control microcomputer 8 controls the operation of the CD-ROM decoder 6 in accordance with a control program stored in the ROM. At the same time, the control microcomputer 8 receives command data from the host computer and subcode data from the digital signal processor 5 and temporarily stores those data in its internal RAM. The control microcomputer 8 controls the operations of the individual circuits in accordance with the command data (i.e., commands from the host computer) so that the host computer can receive the desired CD-ROM data from the CD-ROM decoder 6.
The CD-ROM decoder 6 receives the CD-ROM data from the digital signal processor 5 and sends the CD-ROM data to the host computer in parallel. In accordance with the input and output of data, writing and reading the CD-ROM data into and from the buffer RAM 7 are repeated. Normally, the CD-ROM decoder 6, in a time-sharing manner, accesses the buffer RAM 7 in units of bytes or codes for each input or output.
In general, the CD-ROM decoder 6 is configured such that error correction and detection for one block of CD-ROM data is completed within a predetermined period (hereinafter called "one block period") in accordance with a reference system clock. If a predetermined process cannot be accomplished within one block period for some reason, CD-ROM data is consecutively written in the buffer RAM 7. As a result, unprocessed CD-ROM data remains in the buffer RAM 7. As such a state continues, the buffer RAM 7 overflows. This overflow forces the CD-ROM decoder 6 to temporarily interrupt the reception of CD-ROM data.
For fast reproduction like .times.2 reproduction, the CD-ROM system increases the playback speed of the disk 2 without changing the frequency of the reference system clock supplied to each circuit. The increased playback speed decreases the number of clock cycles supplied in one block period. In other words, the duration of one block period for error correction and detection is shortened and becomes insufficient to find and correct errors, and to process the CD-ROM data. The reduction in the number of clock cycles makes it difficult to complete a predetermined process in one block period.
For fast transfer of CD-ROM data to the host computer, the frequency of data reading from the buffer RAM 7 can be increased. However, when such fast transfer is provided, the time available for reading and writing CD-ROM data from and into the buffer RAM 7 decreases. As a result, the error correction and detection process is often delayed, thus making it difficult to accomplish a predetermined process in one block period.
The above-mentioned problems also arise in a digital video disc read only memory (DVD-ROM) system which uses a DVD or a high-density recording medium as a ROM. A DVD has approximately seven times the recording capacity of a CD. Therefore, there is an even greater demand for a faster playback speed in a DVD-ROM system than for a CD-ROM system.
It is an object of the present invention to provide an error correcting and detecting decoder that executes a decode process at high speed.